Apache CXF এর মাধ্যমে Client Proxy তৈরি করা

Web Development - অ্যাপাচি সিএক্সএফ (Apache CXF) - Client তৈরি করা (Creating Web Service Clients) |
2
2

Apache CXF এর মাধ্যমে Client Proxy তৈরি করা হলো SOAP ওয়েব সার্ভিসে ক্লায়েন্টের পক্ষে সার্ভিস কল করার একটি পদ্ধতি। Client Proxy আপনাকে সার্ভিসের WSDL (Web Service Definition Language) ফাইলের উপর ভিত্তি করে একটি ক্লায়েন্ট অবজেক্ট তৈরি করতে দেয়, যা সার্ভিসের মেথডগুলোকে সহজে কল করতে সক্ষম হয়। Apache CXF ক্লায়েন্ট প্রক্সি তৈরি করার জন্য wsdl2java টুল ব্যবহার করে WSDL ফাইল থেকে Java ক্লাস তৈরি করা হয়, এবং সেগুলোকে দিয়ে ওয়েব সার্ভিস কল করা হয়।


ধাপ 1: WSDL ফাইল পাওয়া

প্রথমে, আপনাকে ওয়েব সার্ভিসের WSDL ফাইলটি সংগ্রহ করতে হবে। উদাহরণস্বরূপ, যদি আপনার ওয়েব সার্ভিসের WSDL ফাইলটি http://localhost:8080/helloWorldService?wsdl হয়, তাহলে আপনি এটি ব্যবহার করতে পারবেন।


ধাপ 2: wsdl2java টুল ব্যবহার করে Java ক্লাস তৈরি করা

Apache CXF এর wsdl2java টুলটি WSDL ফাইল থেকে Java ক্লাস জেনারেট করতে ব্যবহৃত হয়। আপনি এই টুলটি Maven বা কমান্ড লাইনের মাধ্যমে ব্যবহার করতে পারেন।

2.1 Maven ব্যবহার করে wsdl2java টুল চালানো

Maven প্রজেক্টে wsdl2java টুল চালানোর জন্য প্রথমে pom.xml ফাইলে Apache CXF এর প্লাগইন যোগ করুন:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>3.5.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                    <configuration>
                        <wsdlUrls>
                            <wsdlUrl>http://localhost:8080/helloWorldService?wsdl</wsdlUrl>
                        </wsdlUrls>
                        <packageName>com.example.client</packageName>  <!-- Java Package -->
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

এখানে:

  • wsdlUrls: এখানে WSDL ফাইলের URL বা লোকাল ফাইলের পাথ দেওয়া হয়।
  • packageName: Java ক্লাসের প্যাকেজ নেম যা তৈরি হবে।

এবার Maven কমান্ড চালান:

mvn clean generate-sources

এই কমান্ডটি WSDL থেকে Java ক্লাস জেনারেট করবে এবং আপনার প্রজেক্টে target/generated-sources ডিরেক্টরিতে ক্লাসগুলো তৈরি হবে।


ধাপ 3: Client Proxy তৈরি করা

wsdl2java টুল দ্বারা তৈরি Java ক্লাসগুলির মধ্যে ক্লায়েন্ট প্রক্সি অবজেক্ট থাকবে, যার মাধ্যমে আপনি ওয়েব সার্ভিসের মেথডগুলো কল করতে পারবেন।

3.1 Client Class তৈরি করা

এখন, আপনি একটি ক্লায়েন্ট ক্লাস তৈরি করতে পারেন, যা ওয়েব সার্ভিসে ক্লায়েন্ট প্রক্সি ব্যবহার করবে:

package com.example.client;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class HelloWorldClient {
    public static void main(String[] args) {
        // WSDL URL এবং সার্ভিস ক্লাস সেট করা
        String serviceUrl = "http://localhost:8080/helloWorldService";
        
        // JAX-WS Proxy ফ্যাক্টরি ব্যবহার করে ওয়েব সার্ভিসের ক্লায়েন্ট প্রক্সি তৈরি করা
        JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
        factoryBean.setServiceClass(HelloWorldService.class);  // Service Interface
        factoryBean.setAddress(serviceUrl);  // Web Service URL
        
        // Proxy অবজেক্ট তৈরি
        HelloWorldService client = (HelloWorldService) factoryBean.create();
        
        // ওয়েব সার্ভিসের মেথড কল করা
        String response = client.sayHello("John");
        System.out.println("Response from service: " + response);
    }
}

এখানে:

  • JaxWsProxyFactoryBean: এটি Apache CXF এর ক্লায়েন্ট প্রক্সি তৈরি করার জন্য ব্যবহৃত হয়।
  • setServiceClass: এটি ওয়েব সার্ভিসের ইন্টারফেস সেট করে, যা wsdl2java টুল দ্বারা তৈরি হয়।
  • setAddress: এটি ওয়েব সার্ভিসের URL নির্ধারণ করে।
  • client.sayHello("John"): এটি ওয়েব সার্ভিসের মেথড কল করে।

3.2 HelloWorldService Interface

এটি একটি উদাহরণ HelloWorldService ইন্টারফেস, যা wsdl2java টুল দ্বারা জেনারেট করা হয়:

package com.example.client;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface HelloWorldService {
    @WebMethod
    String sayHello(String name);
}

ধাপ 4: ওয়েব সার্ভিস রান করা এবং টেস্ট করা

এখন, আপনি ওয়েব সার্ভিস সার্ভার এবং ক্লায়েন্ট কোড রান করে দেখতে পারেন।

  1. প্রথমে ওয়েব সার্ভিস সার্ভার (যদি এটি চলমান না থাকে) চালু করুন।
  2. এরপর ক্লায়েন্ট কোড রান করুন।

আপনার ক্লায়েন্ট প্রোগ্রামটি ওয়েব সার্ভিসের sayHello() মেথড কল করবে এবং ওয়েব সার্ভিসের থেকে আউটপুট পাবে।


সারসংক্ষেপ

Apache CXF এর মাধ্যমে ক্লায়েন্ট প্রক্সি তৈরি করা ওয়েব সার্ভিসে ক্লায়েন্ট হিসেবে সহজে মেথড কল করার সুযোগ দেয়। wsdl2java টুলটি WSDL ফাইল থেকে Java ক্লাস তৈরি করে এবং JaxWsProxyFactoryBean এর মাধ্যমে ক্লায়েন্ট প্রক্সি তৈরি করা হয়। এতে করে SOAP ভিত্তিক ওয়েব সার্ভিসগুলোর সঙ্গে Java ক্লায়েন্ট ইন্টিগ্রেট করা সহজ হয়ে ওঠে।

Content added By
Promotion